package moocloudstudio.minder.service;

import moocloudstudio.minder.entity.MinderUser;

public interface UserService{
    /**
     * 根据用户id查找获取用户的用户名
     * @param userId 用户id
     * @return 用户名
     */
    String findUsernameAndCheckUserById(String userId) throws Throwable;

    /**
     * 根据用户名查找用户
     * @param username 用户名
     * @return 用户信息
     */
    MinderUser findUserByUsername(String username);

    /**
     * 通过用户id查找用户
     * @param userId 用户id
     * @return 用户信息
     */
    MinderUser findAndCheckById(String userId);

    /**
     * 检测用户是否允许允许登录
     * @param userId 用户id
     *
     */
    void checkUserAllowLogin(String userId);

    /**
     * 登录检查
     * @param username 用户名
     * @param password 密码
     */
    void checkUserLogin(String username, String password);

    /**
     * 用户注册
     * @param username 用户名
     * @param password 密码
     * @param nickname 昵称
     * @return 注册的用户信息
     */
    MinderUser register(String username, String password, String nickname);

    /**
     * 删除一个用户
     * @param userId 用户id
     */
    void deleteById(String userId);
}
